/**
 * 表单项类型
 */
export enum SearchItemType {
  INPUT = 'input',
  INPUT_PASSWORD = 'input-password',
  INPUT_NUMBER = 'input-number',
  TEXTAREA = 'textarea',
  SELECT = 'select',
  TREE_SELECT = 'tree-select',
  RADIO_GROUP = 'radio-group',
  CHECKBOX_GROUP = 'checkbox-group',
  SWITCH = 'switch',
  DATE_PICKER = 'date-picker',
  RANGE_PICKER = 'range-picker',
  UPLOAD = 'upload',
  SLOT = 'slot',
  ROW = 'row'
}

/**
 * 表单项配置接口
 */
export interface SearchItemConfig {
  field: string
  label: string
  type: SearchItemType
  placeholder?: string | string[]
  allowClear?: boolean
  options?: Array<{ value: any, label: string }>
  treeData?: any[]
  fieldNames?: { label: string, value: string, children: string }
  treeDefaultExpandAll?: boolean
  span?: {
    xs?: number
    sm?: number
    md?: number
    lg?: number
    xl?: number
  }
  min?: number
  max?: number
  step?: number
  slotName?: string
} 